Electronic spreadsheets organize information into a matrix of columns and rows. Each column within a row is referred to as a cell. Each cell of an electronic spreadsheet stores a data element, such as text or numerical data, or a formula which uses data elements from other cells to calculate a desired result. Various data elements in multiple cells may be combined to create lists. For example, a list may be created to track the performance of salespersons for a national software company. Such a list may include a header row including field names such as the name of each salesperson, the geographic region assigned to each salesperson, and the amount of sales generated by each salesperson. The list may also include one or more data rows following the header row for displaying data associated with each field name. Field names in a header row may be manually formatted by a user to set them apart from associated data rows. The list may further include a formula for calculating a combined sales total for all salespersons in the company.
Often, new data elements are added to spreadsheet cells in order to expand a previously created list. For example, a new column of cells storing data elements may be added to a two-column list resulting in the list being expanded to three columns. In order to facilitate data entry, electronic spreadsheets may also include functionality to apply a variety of data types which restrict the type of data which may be entered into a cell. Illustrative data types include text, number, currency, date and time, hyperlink, etc. For example, the cells in a header row may be restricted to a text data type. Data types may usually be applied to a single cell or a group of cells (i.e., rows and/or columns) in a spreadsheet. Thus, a typical electronic spreadsheet may include a variety of different data types at a given time.
In prior electronic spreadsheets, lists are created in an ad-hoc fashion without any support for automatic recognition of the range the list may have, headers (i.e., field names), and formulas which may be present in a range of cells storing data elements. In these prior electronic spreadsheets, cells containing headers must be manually selected and formatted (if desired) by a user through commonly known user interface techniques, such as selecting options from a pull-down menu. Similarly, “total” cells reflecting the result of an aggregation of cells due to a formula must also be manually defined and/or formatted by the user. Furthermore, prior electronic spreadsheets fail to provide support for automatically recognizing new cells added to expand an existing list. For example, prior spreadsheets make no distinction between new cells storing field names and new cells storing data and/or formulas without manual intervention by the user. Finally, prior electronic spreadsheets provide no automatic validation of data elements added to cells in a list based on a data type previously defined for a cell or range of cells.
Thus, significant drawbacks found in prior electronic spreadsheets include the inability to recognize data elements in the creation and expansion of lists and the inability to automatically validate cell data elements, without instruction from the user. It is respect to these considerations and others that the present invention has been made.